﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GRC_TPE_WebApp.Controller;

namespace GRC_TPE_WebApp.View.Private.Client
{
    public partial class AddContact : System.Web.UI.Page
    {
        int idClient = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            /// tentative de récupération de l'id
            if (!int.TryParse(Request.QueryString["id"], out idClient))
                /// redirection s'il y a une erreur au Parse
                Response.Redirect(Request.UrlReferrer.AbsolutePath);
        }

        /// <summary>
        /// Méthode déclenchée une fois la page chargée
        /// </summary>
        /// <param name="e"></param>
        protected override void OnLoadComplete(EventArgs e)
        {
            base.OnLoadComplete(e);

            if (this.idClient != 0)
            {
                string[] clientFields = ClientController.GetClientFields(this.idClient);

                ///si tous les champs ont bien été retournés
                if (clientFields.Count() == 4)
                    this.addContactClient.Text = clientFields[0];
                else
                    /// redirection s'il y a une erreur au Parse
                    Response.Redirect(Request.UrlReferrer.AbsolutePath);
            }
        }

        /// <summary>
        /// Permet d'ajouter un contact après le clic sur le bouton "addContactButton" sur la page "AddContact.aspx"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void addContactButton_Click(object sender, EventArgs e)
        {
            int phone = 0;

            if (int.TryParse(this.addContactPhone.Text, out phone))
            {
                string ret = ContactController.AddContact(this.addContactFunction.Text, this.addContactLastName.Text, this.addContactFirstName.Text, this.addContactEmail.Text, this.idClient.ToString(), phone);
                if (ret == "No error")
                {
                    this.addContactErrorMessage.ForeColor = System.Drawing.Color.DarkGreen;
                    this.addContactErrorMessage.Text = "Contact ajouté avec succès";
                    this.addContactFirstName.Text = "";
                    this.addContactLastName.Text = "";
                    this.addContactPhone.Text = "";
                    this.addContactFunction.Text = "";
                    this.addContactEmail.Text = "";
                }
                else
                {
                    this.addContactErrorMessage.ForeColor = System.Drawing.Color.DarkRed;
                    this.addContactErrorMessage.Text = ret;
                }
            }
            else
            {
                this.addContactErrorMessage.ForeColor = System.Drawing.Color.DarkRed;
                this.addContactErrorMessage.Text = "Le numéro de téléphone ne peut contenir que des chiffres";
            }
        }
    }
}